package Both;

/**
 * Polytech' Nice - Sophia Antipolis / SI3 / Projet de fin de semestre Annee
 * 2011_2012
 * 
 * Reservation de transports en commun
 * 
 * Package Both
 * 
 * Enum ProfilPassager : represente tous les types de passages geres par
 * l'application chaque valeur de l'enum contient un coefficient a appliquer au
 * prix du billet
 * 
 * @author J. Harnetiaux
 */

public enum ProfilPassager {
    BEBE(0), ENFANT(0.25), FAMILLE(0.5), DOUZE_VINGT_CINQ(0.75), MILITAIRE(1), ADULTE(
            1.2), SENIOR(0.8);

    private static final double COEFF_BEBE = ProfilPassager.BEBE.getProfil();
    private static final double COEFF_ENFANT = ProfilPassager.ENFANT
            .getProfil();
    private static final double COEFF_FAMILLE = ProfilPassager.FAMILLE
            .getProfil();
    private static final double COEFF_DOUZE_VINGT_CINQ = ProfilPassager.DOUZE_VINGT_CINQ
            .getProfil();
    private static final double COEFF_MILITAIRE = ProfilPassager.MILITAIRE
            .getProfil();
    private static final double COEFF_ADULTE = ProfilPassager.ADULTE
            .getProfil();
    private static final double COEFF_SENIOR = ProfilPassager.SENIOR
            .getProfil();

    private double profil;

    /**
     * Constructeur normal
     * 
     * @param profil
     *            valeur du coefficient multiplicateur correspondant au profil
     *            du passager � appliquer au prix du billet
     */
    ProfilPassager(double profil) {
        this.profil = profil;
    }

    /**
     * Surcharge de toString
     */
    @Override
    public String toString() {
        if (profil == COEFF_BEBE)
            return "bebe";
        else if (profil == COEFF_ENFANT)
            return "enfant";
        else if (profil == COEFF_FAMILLE)
            return "famille";
        else if (profil == COEFF_DOUZE_VINGT_CINQ)
            return "12-25";
        else if (profil == COEFF_MILITAIRE)
            return "militaire";
        else if (profil == COEFF_ADULTE)
            return "adulte";
        else if (profil == COEFF_SENIOR)
            return "senior";
        else
            return "Profil non definit pour ce type de passager";
    }

    /**
     * @return le coefficient du profil du passager
     */
    public double getProfil() {
        return profil;
    }
}